package com.aspose.cells;

class zla {
   private int a;
   private int b;
   private int c;
   private int[] d;
   private int e;

   zla(Cells var1, int var2, zagh var3) {
      ColumnCollection var4 = var1.getColumns();
      Column var5 = var4.b;
      this.b = var3.a(var4.b());
      int var6;
      if (var5 != null) {
         var6 = var5.getIndex();
         this.c = var5.isHidden() ? 0 : var3.a(var5.getWidth());
      } else {
         var6 = var2 + 1;
         this.c = this.b;
      }

      int var7 = var4.getCount();
      int[] var8 = null;
      if (var7 > 0) {
         --var7;

         label91:
         do {
            Column var9 = var4.getColumnByIndex(var7);
            if (var9.getIndex() < var2) {
               var8 = new int[var9.getIndex() + 1];
               var8[var9.getIndex()] = var9.isHidden() ? 0 : var3.a(var9.getWidth());
               int var10;
               if (var6 >= var8.length) {
                  for(var10 = var8.length - 2; var10 > -1; --var10) {
                     var8[var10] = this.b;
                  }
               } else {
                  for(var10 = 0; var10 < var6; ++var10) {
                     var8[var10] = this.b;
                  }

                  for(var10 = var8.length - 2; var10 >= var6; --var10) {
                     var8[var10] = this.c;
                  }

                  var6 = var8.length;
               }

               --var7;

               while(var7 > -1) {
                  var9 = var4.getColumnByIndex(var7);
                  var8[var9.getIndex()] = var9.isHidden() ? 0 : var3.a(var9.getWidth());
                  --var7;
               }

               var7 = 1;

               while(true) {
                  if (var7 >= var8.length) {
                     break label91;
                  }

                  var8[var7] += var8[var7 - 1];
                  ++var7;
               }
            }

            --var7;
         } while(var7 >= 0);
      }

      this.d = var8;
      this.a = var6;
      if (var8 != null && this.a > this.d.length) {
         this.e = (this.a - this.d.length) * this.b;
      } else {
         this.e = 0;
      }

   }

   public int a(int var1) {
      if (this.d != null && var1 < this.d.length) {
         return var1 == 0 ? this.d[0] : this.d[var1] - this.d[var1 - 1];
      } else {
         return var1 >= this.a ? this.c : this.b;
      }
   }

   public int a(int var1, int var2) {
      if (this.d != null && var1 < this.d.length) {
         if (var2 < this.d.length) {
            return var1 == 0 ? this.d[var2] : this.d[var2] - this.d[var1 - 1];
         } else if (var1 == 0) {
            return var2 < this.a ? this.d[this.d.length - 1] + this.b * (var2 - this.d.length + 1) : this.d[this.d.length - 1] + this.e + this.c * (var2 - this.a + 1);
         } else {
            return var2 < this.a ? this.d[this.d.length - 1] - this.d[var1 - 1] + this.b * (var2 - this.d.length + 1) : this.d[this.d.length - 1] - this.d[var1 - 1] + this.e + this.c * (var2 - this.a + 1);
         }
      } else if (var1 < this.a) {
         return var2 < this.a ? this.b * (var2 - var1 + 1) : this.b * (this.a - var1) + this.c * (var2 - this.a + 1);
      } else {
         return this.c * (var2 - var1 + 1);
      }
   }

   public void a(int[] var1) {
      int var2 = var1[0];
      int var3;
      int var4;
      if (var1[2] < 0) {
         var3 = -var1[2] - var1[1];
         if (var3 <= 0) {
            var1[2] = -var3;
            var1[1] = 0;
            this.a(var1);
            return;
         }

         --var2;
         if (var2 < 0) {
            var1[1] = 0;
            var1[2] = this.d == null ? this.b : this.d[0];
            return;
         }

         if (var2 >= this.a) {
            if (this.c > 0) {
               var4 = (var3 - 1) / this.c;
               if (var2 - var4 >= this.a) {
                  var3 -= var4 * this.c;
                  var1[0] = var2 - var4;
                  var1[1] = this.c - var3;
                  var1[2] = var3;
                  return;
               }

               var3 -= (var2 - this.a + 1) * this.c;
            }

            var2 = this.a - 1;
         }

         if (this.d == null) {
            if (this.b > 0) {
               var4 = (var3 - 1) / this.b;
               if (var2 < var4) {
                  var1[0] = 0;
                  var1[1] = 0;
                  var1[2] = this.b;
                  return;
               }

               var3 -= var4 * this.b;
               var1[0] = var2 - var4;
               var1[1] = this.b - var3;
               var1[2] = var3;
            } else {
               var1[0] = var2;
               var1[1] = 0;
               var1[2] = var3;
            }
         } else {
            if (var2 >= this.d.length) {
               if (var3 <= this.e) {
                  var4 = (var3 - 1) / this.b;
                  var3 -= var4 * this.b;
                  var1[0] = var2 - var4;
                  var1[1] = this.b - var3;
                  var1[2] = var3;
                  return;
               }

               var3 -= this.e;
               var2 = this.d.length - 1;
            }

            var3 = this.d[var2] - var3;
            if (var3 > 0) {
               --var2;

               while(var2 > -1) {
                  if (this.d[var2] <= var3) {
                     var1[0] = var2 + 1;
                     var1[1] = var3 - this.d[var2];
                     var1[2] = this.d[var2 + 1] - var3;
                     return;
                  }

                  --var2;
               }
            }

            var1[0] = 0;
            var1[1] = 0;
            var1[2] = this.d[0];
         }
      } else {
         var3 = var1[1] + var1[2];
         if (this.d != null && var2 < this.d.length) {
            if (var2 > 0) {
               var3 += this.d[var2 - 1];
            }

            while(var2 < this.d.length) {
               if (var3 <= this.d[var2]) {
                  var1[0] = var2;
                  var1[1] = var2 > 0 ? var3 - this.d[var2 - 1] : var3;
                  var1[2] = this.d[var2] - var3;
                  return;
               }

               ++var2;
            }

            var3 -= this.d[this.d.length - 1];
            if (var3 < this.e) {
               var4 = (var3 - 1) / this.b;
               var3 -= var4 * this.b;
               var1[0] = this.d.length + var4;
               var1[1] = var3;
               var1[2] = this.b - var3;
               return;
            }

            if (var3 == this.e) {
               var1[0] = this.a - 1;
               var1[1] = this.b;
               var1[2] = 0;
               return;
            }

            var3 -= this.e;
            var2 = this.a;
         }

         if (var2 < this.a) {
            if (this.b > 0) {
               var4 = (var3 - 1) / this.b;
               if (var2 + var4 < this.a) {
                  var3 -= var4 * this.b;
                  var1[0] = var2 + var4;
                  var1[1] = var3;
                  var1[2] = this.b - var3;
                  return;
               }

               var3 -= (this.a - var2) * this.b;
            }

            var2 = this.a;
         }

         if (this.c > 0) {
            var4 = (var3 - 1) / this.c;
            var3 -= var4 * this.c;
            var1[0] = var2 + var4;
            var1[1] = var3;
            var1[2] = this.c - var3;
         } else {
            var1[0] = var2;
            var1[1] = var3;
            var1[2] = -var3;
         }
      }

   }
}
